import LocalData from "@/common/local_data";
import DateUtils from "@/utils/date_utils";
import NumberUtils from "@/utils/number_utils";

export default class ShowUtils {
  //获取图片，如果没有定义就返回默认值
  static getImage(image: any, defaultImage: string = 'https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar1.png'): string {
    if (image) {
      return `${image}`;
    } else {
      return defaultImage;
    }
  }
  static getPayWay(type: number | null | undefined) {
    if (type === 0) {
      return '个人余额';
    } else if (type === 1) {
      return '组余额';
    } else if (type === 2) {
      return '微信支付';
    } else {
      return '未知';
    }
  }
  static isValidTeamId(teamId: string | number | null | undefined): boolean {
    // 1. 检查 null 或 undefined
    if (teamId === null || typeof teamId === 'undefined') {
      return false;
    }

    // 2. 处理字符串类型
    if (typeof teamId === 'string') {
      const trimmedTeamId = teamId.trim();
      // 如果 trim 后是空字符串，则无效
      if (trimmedTeamId === '') {
        return false;
      }
      // 尝试将字符串转换为数字
      const numericTeamId = parseFloat(trimmedTeamId);
      // 如果转换失败 (NaN) 或数字小于等于0，则无效
      return !(isNaN(numericTeamId) || numericTeamId <= 0);
      // 字符串有效
    }

    // 3. 处理数字类型 (此时 teamId 肯定是 number 类型)
    // 如果数字小于等于0，则无效
    return teamId > 0;

  }
  //如果获取的为null给一个默认值
  static getDefault(data: any, defaultValue: string = '---') {
    if (data && data !== '') {
      return `${data}`;
    } else {
      return defaultValue;
    }
  }

  static getShowTime(inputDateTimeString: string | null | undefined) {
    if (!inputDateTimeString || inputDateTimeString.trim() === "") {
      console.warn("输入字符串为空或无效。");
      return null;
    }
    const dateTimeParts = inputDateTimeString
      .split(',')
      .map(s => s.trim())
      .filter(s => s.length > 0);

    const showTimes = DateUtils.formatTimeRangeWithDayjs(dateTimeParts[0])

    return `${showTimes}开始，共${dateTimeParts.length / 2}小时`;

  }


  //

  static getShowNote(value: string | null | undefined) {
    //如果为空就""
    if (value) {
      return `(${value})`;
    } else {
      return ''
    }
  }

  static getFirstParagraphContentRegex(htmlString: string): string | null {
    if (!htmlString) {
      return null;
    }
    // 一个更简单（但也可能更脆弱）的非贪婪匹配：
    const regex = /<p[^>]*>(.*?)<\/p>/is; // 非贪婪匹配 p 标签内的所有内容

    const match = htmlString.match(regex);

    if (match && match[1]) {
      // match[0] 是整个匹配到的字符串 (包括 <p> 和 </p>)
      // match[1] 是第一个捕获组的内容 (即 <p> 和 </p> 之间的内容)
      return match[1].trim(); // trim() 移除可能存在的前后空格
    }

    return null;
  }


  static getDefaultPrice(data: any, defaultValue: string = LocalData.defaultPrice) {
    if (data) {
      return `¥${NumberUtils.stringToNumber(data)}`;
    } else {
      return defaultValue;
    }
  }
}
